package org.zwy.gradetrack.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.zwy.gradetrack.entity.DirectEvaluation;
import org.zwy.gradetrack.vo.DirectEvaluationVO;
import java.util.List;
import java.math.BigDecimal;

/**
 * 直接评价服务接口
 */
public interface DirectEvaluationService extends IService<DirectEvaluation> {

    /**
     * 分页查询直接评价
     */
    Page<DirectEvaluationVO> pageWithCondition(Page<DirectEvaluation> page, DirectEvaluation evaluation);
    
    /**
     * 计算评价指标
     */
    void calculateEvaluationMetrics(DirectEvaluation evaluation);
    
    /**
     * 根据课程ID和指标点ID获取评价列表
     */
    List<DirectEvaluation> getByCourseAndIndicator(Integer courseId, Integer indicatorId);

    /**
     * 获取指定指标点和评价年份的最新评价分数
     * @param indicatorId 指标点ID
     * @param evaluationYear 评价年份
     * @return 评价分数
     */
    BigDecimal getLatestEvaluationScore(Long indicatorId, Integer evaluationYear);
}